package Create_String;/*
 *
 * @author 陈粒
 * @version 创建时间：2021/7/14 14:46
 */

import org.junit.Test;

import java.util.Arrays;

public class String_Method {
    @Test
    public void length() {
        String s1 = "abcdefgh";
        System.out.println(s1.length());//获取字符串长度
    }

    @Test
    public void indexof() {
        String s1 = "abcdeedac";
        //找到则返回下标值，没找到则返回-1
        System.out.println(s1.indexOf("e"));//获取字符在字符串中第一次出现的位置,用的下标
        System.out.println(s1.indexOf("d", 2));//从下标fromIndex处开始开始查找str在字符串中第一次出现的位置；
        System.out.println(s1.lastIndexOf("e"));//从尾部开始查找str在字符串中最后一次出现的位置,下标位置是顺序的
        System.out.println(s1.lastIndexOf("c", 5));//从下标fromIndex处开始开始查找str在字符串中最后一次出现的位置
    }

    @Test
    public void charAt() {
        String s1 = "abcdefgh";
        System.out.println(s1.charAt(7));//获取字符串中某一个位置的字符
    }

    @Test
    public void substring() {
        String s1 = "abcdefgh";
        System.out.println(s1.substring(1, 4));//[1,4),从fromIndex下标处开始截取到endIndex处结束，不包含下标为endIndex的字符
        System.out.println(s1.substring(2));//从fromIndex处开始截取到最后
    }

    @Test
    public void start_endWith() {
        String s1 = "lkjhg";
        boolean b1 = s1.startsWith("l");//验证字符串开始字符，返回boolean类型值
        boolean b2 = s1.startsWith("k");
        boolean b3 = s1.endsWith("g");//验证字符串结束字符，返回boolean类型值
        boolean b4 = s1.endsWith("l");
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);
        System.out.println(b4);
    }

    @Test
    public void compare_equals() {
        String s1 = "mnb";
        String s2 = "mnb";
        String s3 = "MNb";

        int a = s1.compareTo(s2);//对字符串内容按字典顺序进行大小比较，通过返回的整数值指明当前字符串与参数字符串的大小关系。
        // 若当前对象比参数大则返回正整数，反之返回负整数，相等返回0。
        System.out.println(a);
        int b = s1.compareToIgnoreCase(s3);//和compareTo()方法类似，但是忽略大小写比较。
        System.out.println(b);
        boolean b1 = s1.equals(s2);//比较当前字符串和参数字符串，在两个字符串相等的时候返回true，否则返回false。
        System.out.println(b1);
        boolean b2 = s1.equalsIgnoreCase(s3);//和equals()方法类似，但是忽略大小写比较
        System.out.println(b2);
    }
    @Test
    public void concat() {
        String s1 = "cat ";
        String s2 = "dog";
        String news = s1.concat(s2);//用concat连接两个字符串成为一个新的字符串
        System.out.println(news);
    }
    @Test
    public void toUpper_toLowerCase(){
        String s1="abc";
        String news1=s1.toUpperCase();//小写字符串转大写字符串
        System.out.println(news1);
        String s2="ABC";
        String news2=s2.toLowerCase();//大写字符串转小写字符串
        System.out.println(news2);
    }
    @Test
    public void replace(){
        String s1="ChengDu";
        String s2=s1.replace("Du","Shi");//用新的字符串代替旧的字符串。
        System.out.println("改之前:"+s1);
        System.out.println("改之后:"+s2);
    }
    @Test
    public void trim(){
        String s1="  ChengDu  ";
        String s2=s1.trim();//清除字符串str两侧的空字符串
        System.out.println(s2);
    }
    @Test
    public void split(){
        String s1="Hello;Cheng;Du";
        String []s2=s1.split(";");//用regex将字符串s1分割成数组。
        System.out.println(Arrays.toString(s2));
    }
}
